<template>
  <van-cell>
    <!--
      多模板渲染模式
      有几种情况就先写几种模板 通过配合v-if v-else条件渲染
      让同一时间只有一种模板得到渲染
     -->
    <!-- 标题区域的插槽 -->
    <template #title>
      <!-- 无图模式 -->
      <div class="title-box" v-if="item.cover.type === 0">
        <!-- 标题 -->
        <span>{{ item.title }}</span>
      </div>

      <!-- 单图模式 -->
      <div class="title-box" v-if="item.cover.type === 1">
        <!-- 标题 -->
        <span>{{ item.title }}</span>
        <!-- 单图 -->
        <van-image
          width="113"
          height="70"
          :src="item.cover.images[0]"
          lazy-load
        />
        <!-- <img class="thumb" :src="item.cover.images[0]" /> -->
      </div>

      <!-- 三图模式 -->
      <div class="thumb-box" v-if="item.cover.type === 3">
        <!-- <img
          v-for="(item, index) in item.cover.images"
          :key="index"
          class="thumb"
          :src="item"
        /> -->
        <van-image
          v-for="item in item.cover.images"
          :key="item"
          width="113"
          height="70"
          :src="item"
          lazy-load
        />
      </div>
    </template>
    <!-- label 区域的插槽 -->
    <template #label>
      <div class="label-box">
        <div>
          <span>{{ item.aut_name }}</span>
          <span>{{ item.comm_count }}评论</span>
          <span>{{ formatTime(item.pubdate) }}</span>
        </div>
      </div>
    </template>
  </van-cell>
</template>

<script>
import { formatRelitiveTime } from '@/utils/time'
// 注意
// 1. 模板template中使用的所有的看起来像是变量或者方法的地方用的都是当前组件实例身上的属性或者方法
// 2. 直接import进来的方法变量 并不属于当前组件实例身上的方法 普通的模块作用域下的变量而已
// 模板中不能直接使用 需要借助methods选项 挂载到当前的组件实例身上之后才能用

// js俩链 作用域链和原型链
export default {
  name: 'article-list-item',
  props: {
    item: {
      type: Object,
      default: () => {
        return {}
      }
    }
  },
  methods: {
    formatTime (time) {
      return formatRelitiveTime(time)
    }
  }
}
</script>

<style scoped lang="less">
/* 标题样式 */
.title-box {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

/* label描述样式 */
.label-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* 文章信息span */
.label-box span {
  margin: 0 3px;
  &:first-child {
    margin-left: 0;
  }
}

/* 图片的样式, 矩形黄金比例：0.618 */
.thumb {
  width: 113px;
  height: 70px;
  background-color: #f8f8f8;
  object-fit: cover;
}

/* 三图, 图片容器 */
.thumb-box {
  display: flex;
  justify-content: space-between;
}
</style>
